
#ifndef _MYMAINWINDOW_
#define _MYMAINWINDOW_

#include <QtGui/QtGui>
#include "ui_interface.h"

/// Implements the main window by inheriting from Ui::MainWindow.
class MyMainWindow : public QMainWindow, private Ui::MainWindow {
   
   Q_OBJECT
   
public:
   /// Constructor
   MyMainWindow (QMainWindow *parent = 0);
   
   void open(int argc, char *argv[]);
   
private slots:
   
   /// Automatically bound to the actionOpen menu item of the main window 
   /// by the designer mechanism.
   void on_actionOpen_triggered();
   
   void on_actionViewModel_triggered();
   void on_actionViewInfo_triggered();
   void on_actionViewFloor_triggered();
   
   void on_actionRenderPoints_triggered();
   void on_actionRenderWireframe_triggered();
   void on_actionRenderFlat_triggered();
   void on_actionRenderFlatLines_triggered();
   void on_actionRenderHiddenLines_triggered();
   void on_actionRenderSmooth_triggered();
   void on_actionLightOnOff_triggered();
   void on_actionProjection_triggered();
   
   /// Sets the maximum value on the slider 
   void setMaximumValueSlider();
   
   /// Increments the slider value and calls the animateValueSlider() function
   void addValueSlider();
   
   /// Animates the current slider value
   void animateValueSlider(int);
   
   void on_bPlay_clicked();
   void on_bStop_clicked();
   void on_bPause_clicked();
   
private:
   QActionGroup         *meshrenderGroup;
   QString              filenamemodel;
   
   /// Animation data
   QTimer               *timer;
};

#endif
